﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Systemet.Views
{
    public partial class BudgeteratResultat : UserControl
    {
        private Domain.Budgetcontroller BController;
        private double påläggFromAllProducts;
        private string radioButtonSideView;

        public BudgeteratResultat()
        {
            InitializeComponent();
            AccessController.Instance.MainView = this;
        }

        public void UpdateDgv(string searchOption, string filterWord)
        {
            BController = new Domain.Budgetcontroller();
            if (searchOption == "produkt")
            {
                budResGW.DataSource = BController.updateBudResDGV(filterWord);
            }
            if (searchOption == "produktgrupp")
            {
                budResGW.DataSource = BController.updateBudResDGVGrupp(filterWord);
            }
            if (searchOption == "avdelning")
            {
                budResGW.DataSource = BController.updateBudResDGVAvdelning();
            }
            if (searchOption == "foretag")
            {
                UpdateFöretag();
            }
        }


        public void setRadioButtonAndPålägg(string radiobutton, double pålägg)
        {
            radioButtonSideView = radiobutton;
            LabelTextBud.Text = radioButtonSideView;
            påläggFromAllProducts = pålägg;
        }
        //Uppdaterar DGV och gömmer 
        public void UpdateDGVProd(object produkter)
        {
            budResGW.Columns.Clear();
            budResGW.DataSource = produkter;
            budResGW.Columns["Produktgrupp"].Visible = false;
            budResGW.Columns["ProduktgruppID"].Visible = false;
        }
        public void UpdateDGVProdGrupp(object produkter)
        {
            budResGW.Columns.Clear();
            budResGW.DataSource = produkter;
        }
        public void UpdateDGVAvdelning(object avdelningar)
        {
            budResGW.Columns.Clear();
            budResGW.DataSource = avdelningar;
            //budResGW.Columns[1].Visible = false;

        }
        public void UpdateFöretag() 
        {
            budResGW_CellContentClick(null, null);
            budResGW.Columns.Clear();
        }

        private void BudgeteratResultat_Load(object sender, EventArgs e)
        {
            GBBudResPer.Visible = false;
        }
        //Regler för klicket 
        private void budResGW_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //Använd rätt column beroende på vilket värde RadioButton i BUDGETCONTROLLER har
            List<int> tempList = new List<int>();
            int currentRow = 0;
            BController = new Domain.Budgetcontroller(påläggFromAllProducts);

            GBBudResPer.Visible = true;

            if (!radioButtonSideView.Contains("Företag"))
            {
                currentRow = budResGW.CurrentCell.RowIndex;
                tempList = new List<int>(BController.updateMainViewInformation(budResGW.Rows[currentRow].Cells[0].Value.ToString(), radioButtonSideView));
            }
            else if (radioButtonSideView.Contains("Företag"))
                tempList = new List<int>(BController.updateMainViewInformation("", radioButtonSideView));
            
            if (tempList != null & tempList.Count == 1)
            {
                Labelintäkt.Text = "" + tempList[0];
                labelkostnader.Text = "";
                labelResultat.Text = "";
            }
            else if (tempList != null & tempList.Count > 1)
            {
                Labelintäkt.Text = "" + tempList[0];
                labelkostnader.Text = "" + tempList[1];
                labelResultat.Text = "" + (tempList[0] - tempList[1]);
            }

            LabelTextBud.Text = radioButtonSideView;
            if (!radioButtonSideView.Contains("Avdelning") & !radioButtonSideView.Contains("Företag"))
                LabelBudget.Text = budResGW.Rows[currentRow].Cells[1].Value.ToString();
            else if (radioButtonSideView.Contains("Företag"))
            {
                LabelBudget.Text = "Företag";
            }
            else
            {
                LabelBudget.Text = budResGW.Rows[currentRow].Cells[0].Value.ToString();
            }
        }

        private void GBBudResPer_Enter(object sender, EventArgs e)
        {

        }
    }
}
